package cl.tinet.trainee.model;

import java.io.Serializable;
import java.util.Date;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;

@Entity
@Table(name = "carro")
public class CarroTO implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	@Id
	@Column(name = "ID_CARRO")
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	private Integer idCarro;

	/**
	 * @return the serialversionuid
	 */
	public static long getSerialversionuid() {
		return serialVersionUID;
	}

	/**
	 * nombre del usuario
	 */
	@Column(name = "NOMBRE_USUARIO")
	private String nombreUsuario;

	/**
	 * indica si la compra esta activa
	 */
	@Column(name = "COMPRA_FINALIZADA")
	private Integer compraFinalizada;

	/**
	 * fecha cuando se realizo la compra
	 */
	@Column(name = "FECHA_COMPRA")
	private Date fechaCompra;

	/**
	 * lista de detalles que tiene asociadas un carro
	 */
	@OneToMany(mappedBy = "idCarro", cascade = CascadeType.ALL)
	private List<DetalleCarroTO> lDetalleCarro;

	/**
	 * @return the idCarro
	 */
	public Integer getIdCarro() {
		return idCarro;
	}

	/**
	 * @param idCarro
	 *            the idCarro to set
	 */
	public void setIdCarro(Integer idCarro) {
		this.idCarro = idCarro;
	}

	/**
	 * @return the nombreUsuario
	 */
	public String getNombreUsuario() {
		return nombreUsuario;
	}

	/**
	 * @param nombreUsuario
	 *            the nombreUsuario to set
	 */
	public void setNombreUsuario(String nombreUsuario) {
		this.nombreUsuario = nombreUsuario;
	}

	/**
	 * @return the compraFinalizada
	 */
	public Integer getCompraFinalizada() {
		return compraFinalizada;
	}

	/**
	 * @param compraFinalizada
	 *            the compraFinalizada to set
	 */
	public void setCompraFinalizada(Integer compraFinalizada) {
		this.compraFinalizada = compraFinalizada;
	}

	/**
	 * @return the fechaCompra
	 */
	public Date getFechaCompra() {
		return fechaCompra;
	}

	/**
	 * @param fechaCompra
	 *            the fechaCompra to set
	 */
	public void setFechaCompra(Date fechaCompra) {
		this.fechaCompra = fechaCompra;
	}

	/**
	 * @return the lDetalleCarro
	 */
	public List<DetalleCarroTO> getlDetalleCarro() {
		return lDetalleCarro;
	}

	/**
	 * @param lDetalleCarro
	 *            the lDetalleCarro to set
	 */
	public void setlDetalleCarro(List<DetalleCarroTO> lDetalleCarro) {
		this.lDetalleCarro = lDetalleCarro;
	}

}
